//package down.sallai.ml.filter;
//
//
//
//import javax.servlet.ServletOutputStream;
//import javax.servlet.WriteListener;
//import javax.servlet.http.HttpServletResponse;
//import javax.servlet.http.HttpServletResponseWrapper;
//import java.io.*;
//
///**
// * @description: web filter$
// * @author: sallai
// * @time: 2022年1月3日 0003 下午 05:07:25 秒
// */
//
//
//
//public class ResponseWrapper extends HttpServletResponseWrapper {
//
//    private ByteArrayOutputStream buffer = null;
//
//    private ServletOutputStream out = null;
//
//    private PrintWriter writer = null;
//
//    public ResponseWrapper(HttpServletResponse response) throws IOException {
//        super(response);
//        buffer = new ByteArrayOutputStream();
//        out = new WapperedOutputStream(buffer);
//        writer = new PrintWriter(new OutputStreamWriter(buffer, "UTF-8"));
//    }
//
//    @Override
//    public ServletOutputStream getOutputStream() throws IOException {
//        return out;
//    }
//
//    @Override
//    public PrintWriter getWriter() throws IOException {
//        return writer;
//    }
//
//    @Override
//    public void flushBuffer() throws IOException {
//        if (out != null) {
//            out.flush();
//        }
//        if (writer != null) {
//            writer.flush();
//        }
//    }
//
//    @Override
//    public void reset() {
//        buffer.reset();
//    }
//
//    /**
//     * @Description: 获取response中数据的方法
//     *
//     * @param charset charset
//     * @return java.lang.String
//     * @author 王旭
//     * @date 2021/2/8 11:48
//     **/
//    public String getResponseData(String charset) throws IOException {
//        flushBuffer();//将out、writer中的数据强制输出到WapperedResponse的buffer里面，否则取不到数据
//        byte[] bytes = buffer.toByteArray();
//        try {
//            return new String(bytes, "UTF-8");
//        } catch (UnsupportedEncodingException e) {
//            return "";
//        }
//
//    }
//
//
//    //内部类，对ServletOutputStream进行包装，指定输出流的输出端
//    private class WapperedOutputStream extends ServletOutputStream {
//
//        private ByteArrayOutputStream bos = null;
//
//        public WapperedOutputStream(ByteArrayOutputStream stream) throws IOException {
//            bos = stream;
//        }
//
//        //将指定字节写入输出流bos
//        @Override
//        public void write(int b) throws IOException {
//            bos.write(b);
//        }
//
//        @Override
//        public boolean isReady() {
//            // TODO Auto-generated method stub
//            return false;
//        }
//
//        @Override
//        public void setWriteListener(WriteListener listener) {
//            // TODO Auto-generated method stub
//
//        }
//    }
//
//}